1. Field of the Invention
The present invention relates to video proxy servers and, more specifically, to a video proxy server provided between a content server and a terminal, for receiving video data from the content server, caching the video data, and then streaming the video data to the terminal for playback.
2. Description of the Background Art
In recent years, significant improvements in computer performance have boosted video distribution services through the Internet for business and amusement purposes. Such video distribution services often use a technology called streaming. In video distribution with streaming, video data is stored in a server. In response to a playback request from a terminal, the server distributes requested video data to the terminal. In this case, it takes time for the terminal to receive the requested video data after transmitting the request. Such a response time lag between transmission of the request and the start of reproducing the requested video data should be reduced.
Conventionally, to reduce the response time, a scheme of providing a device called a proxy server between a server and terminals has been suggested. The proxy server is placed in the vicinity of the terminals in order to quickly respond to a request therefrom, and caches (stores) video data coming from the server for streaming to the terminals. Then, when any terminal requests the same video data as that which was previously cached in the proxy server, the cached video data is streamed to the requesting terminal, thereby achieving a reduction in response time.
FIG. 14 is a block diagram illustrating an example configuration of a system using a conventional video proxy server. This system is constructed on a network by original video data 10 stored in a server or others on the network, a video proxy server 12 for caching the video data 10, and a terminal 11 connected to the video proxy server 12 for receiving the video data 10. In FIG. 14, only one terminal 11 is illustrated, but a plurality of terminals may be provided. The operation of the conventional video proxy server 12 is described in further detail below with reference to FIG. 14.
In FIG. 14, the video proxy server 12 includes a cache 14 for storing the video data 10 and a cache controller 13 for controlling the cache 14. The cache controller 13 causes the cache 14 to cache the original video data 10 based on a playback start request coming from the terminal 11.
In this conventional art, the original video data 10 requested by the terminal 11 is streaming thereto while being cached by the video proxy server 12. Then, when the terminal 11 again requests the same video data as the original video data 10, the video proxy server 12 streams the cached video data to the terminal 11. This enables a reduction in the amount of time that is taken to respond to a playback request, as compared with a case where the original video data 10 is streaming from the server. Such a configuration is disclosed, for example, in Japanese Patent Laid-Open Publication No. 9-81491 (1997-81491).
However, the conventional video proxy server 12 has a drawback. Consider a case where the video proxy server 12 receives a seek playback request (request for changing a data position for playback) for seeking a position of data not yet cached while reading the original video data 10 from the server upon request from the terminal 11, caching the video data, and streaming the video data to the terminal 11. In this case, for streaming to the terminal 11, the video proxy server 12 has to wait until video data after a requested position (hereinafter, seek position) is cached. This causes an increase in response time in proportion to a distance (time difference) between the seek position requested by the terminal 11 and a current playback position.
For eliminating such an increase in response time, the position to be read in the original video data 10 should be quickly changed to the requested seek position. Then, the video data after the seek position is streaming to the terminal 11 while being cached. In this case, however, the video data cached in the video proxy server 12 may miss some data (i.e., become discontinuous in time), and therefore is not reusable and, as a result, becomes wasted.
Moreover, there is another drawback. In the conventional video proxy server 12, a cache speed of reading the original video data 10 from the server for caching is predetermined. Therefore, if the plurality of terminals 11 set different playback speeds or change their playback speeds during playback, those playback speeds cannot exceed the predetermined cache speed.